import 'package:flutter/material.dart';
import 'package:flutter_first_project/pages/login/index.dart';
import 'package:flutter_first_project/pages/notice/index.dart';
import 'package:flutter_first_project/pages/profile/index.dart';
import 'package:flutter_first_project/pages/tabs_page.dart';
import 'package:flutter_first_project/utils/TokenManager.dart';

void main() {
  runApp(MaterialApp(
    routes: {
      "/": (context) => const TabsPage(), // 根路由
      "/notice_detail": (context) => const NoticeDetail(),  // 详情页
      // 登录页
      "/login": (context) => const LoginPage(),
      // 个人 信息页
      // "/user_info": (context) => const ProfilePage(),
 
    },
    // 默认开启
    initialRoute: "/",
    onGenerateRoute: (settings) {
          // 如果跳转了一个没有定义的路由 就会进入onGenerateRoute方法
      // 根据判断 动态生成一个组件
      // profile 的页面有token才可以进入 没有token去登录页
      //settings:形参   settings.name 路由名称,settings.arguments 路由参数
      // 如果token存在可以访问个人信息，如果token不存在，则跳转到登录页
      var token = tokenManager.getToken();
      if(token == ''){
        // 跳转到登录页
        return MaterialPageRoute(builder: (context) => const LoginPage());
      }else{
        if(settings.name == '/profile'){
          return MaterialPageRoute(builder: (context) =>  ProfilePage(
            userInfo: settings.arguments as Map<String, dynamic>,
          ));
        }
      }
      return null;
    },
  ));
}
